package response

// Code 类型
type Code string

const (
	SUCCESS Code = "100200" // 成功
	FAILED  Code = "001001" // 失败
)

var CodeMsg = map[Code]string{
	SUCCESS: "操作成功",
	FAILED:  "操作失败",
}

// ResultPage 返回结果分页
type ResultPage struct {
	Page    int         `json:"page"`    // 页码
	Limit   int         `json:"limit"`   // 页大小
	Total   int64       `json:"total"`   // 数据总数
	Content interface{} `json:"content"` // 数据
}

// ResultData 返回结果
type ResultData struct {
	Code Code        `json:"code"` // 码值
	Msg  string      `json:"msg"`  // 信息
	Data interface{} `json:"data"` // 数据
}

// Success 成功
func Success(data interface{}) ResultData {
	return ResultData{
		Code: SUCCESS,
		Msg:  CodeMsg[SUCCESS],
		Data: data,
	}
}

// Fail 失败
func Fail(data string) ResultData {
	return ResultData{
		Code: FAILED,
		Msg:  CodeMsg[FAILED],
		Data: data,
	}
}

// Customize 自定义
func Customize(code Code, data interface{}) ResultData {
	return ResultData{
		Code: code,
		Msg:  CodeMsg[code],
		Data: data,
	}
}
